This invention is in the field of non-volatile memories of the type having floating gates in the memory cells, such as EPROM, EEPROM and flash EEPROM systems, and, more specifically, directed to controlling the level of bit line current during programming of such memories and to generating a reference level used during reading the programmed states of cells in such memories.
Two techniques are commonly used for programming a floating gate memory cell. One technique causes electrons traveling through the cell's channel, from its source to its drain, to be imparted with enough energy to be injected onto the floating gate through a gate dielectric positioned therebetween. This is often termed "hot electron injection" programming. Another technique is to place appropriate voltages on the cell's source, drain and control gate to cause electrons to tunnel through the gate dielectric. This is usually referred to as "Fowler-Nordheim tunneling." Each technique has its own advantages and disadvantages.
Hot electron programming requires that relatively high currents be passed through the cell in order to impart enough energy to electrons for injection onto the floating gate. This high current can cause a parasitic n-p-n bipolar transistor associated with the cell transistor to turn-on (snap back) and draw an excessive level of current through the cell and its column bit line. Therefore, others have attempted to limit current through bit lines during programming. One technique includes placing a resistor in the path of each bit line to limit it's current. The size of the resistor is chosen to be large enough to limit the current that may flow through a bit line and an addressed cell connected thereto but must also be made small enough to allow efficient programming. This necessary trade-off limits the effectiveness of the series resistance to control the high bit line current that can result when the addressed cell transistor goes into a snap back mode. Others have used active circuits connected to the bit lines but their use has proven difficult to adequately control the bit line current.
The state of a floating gate memory cell is usually read by impressing given voltages across the cell and on its control gate, and then reading the resulting current that flows through the cell. The amount of current that flows through the cell is related to the amount of charge on its floating gate. This current, or a voltage proportional to the current, is measured and compared with at least one reference that provides a breakpoint between programmed states of the cell. The result of this comparison is to measure the state into which the cell has been programmed.